/*
 * Clase estatica que utilizaremos para recoger datos por teclado (a traves de la consola)
 */
package gestorvideoclub.util;

import java.io.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.util.Date;

/**
 *
 * @author Rafa Berral
 */
public class introduceDatos {

    public static String texto = "";
    public static double textoDouble;
    public static float textoFloat;

    private static String introduceDatos(String arg) {
        try {
            // InputStreamReader cony = new InputStreamReader(System.in,"ISO 8859-1");
            InputStreamReader cony = new InputStreamReader(System.in);
            BufferedReader entrada = new BufferedReader(cony);
            //System.out.println("Introduce un "+arg+": ");
            do {
                texto = entrada.readLine();
                if (texto.equals("")) {
                    System.out.print("[!] Introduzca el dato solicitado: ");
                }
            } while (texto.equals(""));
        } catch (IOException e) {
            System.out.println("Error");
        }
        return texto;
    }

    public static double introduceDouble() {
        texto = introduceDatos("de tipo double");
        textoDouble = Double.parseDouble(texto);
        return textoDouble;
    }

    public static float introduceFloat() {
        texto = introduceDatos(" de tipo float");
        textoFloat = Float.parseFloat(texto);
        return textoFloat;
    }

    public static String introduceString() {
        texto = introduceDatos("de tipo String");
        return texto;
    }

    public static int introduceEntero() {
        int textoInt = -1;
        try {
            texto = introduceDatos("de tipo entero");
            textoInt = Integer.parseInt(texto);
        } catch (Exception e) {
            System.out.println("[!] Error! Debe introducir un número.");
        } finally {
            return textoInt;            
        }
    }

    public static double introduceDouble2() {
        boolean salir = false;
        do {
            try {
                texto = introduceDatos("de tipo double");
                textoDouble = Double.parseDouble(texto);
                salir = true;
            } catch (Exception e) {
                System.out.println("[!] Error! Debe introducir un numero.");
            }
        } while (!salir);
        return textoDouble;
    }

    public static float introduceFloat2() {
        boolean salir = false;
        do {
            try {
                texto = introduceDatos("de tipo float");
                textoFloat = Float.parseFloat(texto);
                salir = true;
            } catch (Exception e) {
                System.out.println("[!] Error! Debe introducir un numero.");
            }
        } while (!salir);
        return textoFloat;
    }

    public static String introduceString2() {
        boolean salir = false;
        do {
            texto = introduceDatos("de tipo String");
            if (texto.equalsIgnoreCase("")) {
                System.out.println("Error, Introduce una cadena: ");
            } else {
                salir = true;
            }
        } while (!salir);
        return texto;
    }

    public static int introduceEntero2() {
        boolean salir = false;
        int textoInt = -1;
        do {
            try {
                texto = introduceDatos("de tipo entero");
                textoInt = Integer.parseInt(texto);
                salir = true;
            } catch (Exception e) {
                System.out.println("[!] Error! Debe introducir un numero.");
            }
        } while (!salir);
        return textoInt;
    }
}
